package com.yuanchu.search.service;

import com.yuanchu.common.utils.PageResult;
import com.yuanchu.search.dto.OrderDetailDto;
import com.yuanchu.search.dto.QueryOrderParamsDto;
import com.yuanchu.search.dto.TradeTrendVO;
import com.yuanchu.search.dto.UserOrderCountsDto;

import java.util.List;
import java.util.Map;

/**
 * @version: 1.0
 * @Author: adan
 * @description:
 * @date: 2024-02-29 13:06
 */
public interface OrderService {
    /**
     * 查询商家订单列表
     * @param param
     * @return
     */
    PageResult<OrderDetailDto> queryStoreOrderList(QueryOrderParamsDto param);

    /**
     * 查询商家订单详情
     * @param orderId
     * @param storeId
     * @return
     */
    OrderDetailDto getStoreOrderDetail(Integer orderId, Integer storeId);

    /**
     * 查询用户订单详情
     * @param orderId
     * @param userId
     * @return
     */
    OrderDetailDto getOrderDetailByOrderId(Integer orderId, Integer userId);

    /**
     * 查询用户订单列表
     * @param dataType
     * @param page
     * @param userId
     * @return
     */
    PageResult<OrderDetailDto> queryOrderList(String dataType, Integer page, Integer userId);

    /**
     * 查询统计用户待处理订单数
     * @param userId
     * @return
     */
    UserOrderCountsDto queryOrderCounts(Integer userId);

    /**
     * 查询统计订单趋势
     * @return
     */
    TradeTrendVO getTradeTrend();

    /**
     * 查询统计订单数
     * @return
     */
    Map<String, String> queryPending();

    /**
     * 查询统计消费情况
     * @return
     */
    Map<String, String> queryConsumption();

    /**
     * 查询当日订单销量
     * @return
     */
    Map<String, Object> queryOverview();

    /**
     * 查询本月订单销量
     * @return
     */
    List<OrderDetailDto> queryOrderSalesByMonth();

    /**
     * 查询商品订单销量
     *
     * @return
     */
    List<Map<String, Object>> queryOrderSales();

    /**
     * 查询所有订单销量
     *
     * @return
     */
    List<OrderDetailDto> queryOrderSalesAll();

    /**
     * 查询支付订单数
     *
     * @return
     */
    Map<String, String> queryPayOrderCount();
}
